<?php
/**
 * コードカバレッジ解析結果モジュール一覧画面コントローラ
 */
require_once dirname(__FILE__) . '/ccv.php';
/**
 * コードカバレッジ解析結果モージュール一覧画面コントローラクラス
 */
class CcvViewController
{
	/***
	 * リクエストパラメータキーコンスタント
	 */
	/** アプリケーションID */
	const KEY_REQUEST_APPLICATION_ID = 'appid';
	/** 解析情報保存フォルダー */
	const KEY_REQUEST_OUT_FOLDER = 'outdir';
	/** 表示ボタン */
	const KEY_REQUEST_BUTTON_DISP = 'disp';
	/** 解析結果ファイル名 */
	const  KEY_REQUEST_ANALYZED_FILE_NAME = 'af';
	
	public $ccvCount;
	public $moduleList;
	public $analyzedModuleList;
	
	public function __construct()
	{
		$this->ccvCount = 0;
		$this->moduleList = array();
		/*** 表示ボタンが押されていない場合は初期表示と判断する */
		if (!isset($_REQUEST[self::KEY_REQUEST_BUTTON_DISP])) {
			return;
		}
		/*** HDユニットインスタンス生成 */
		$storage = new Storage_Diskunit(
				$_REQUEST[self::KEY_REQUEST_APPLICATION_ID], 
				$_REQUEST[self::KEY_REQUEST_OUT_FOLDER]);
		/*** コードカバレッジ解析クラスインスタンス生成 */
		$ccv = new ccv($storage);
		/***
		 * HTML引渡し情報生成
		 */
		$this->analyzedModuleList = $ccv->getAnalyzedModuleList();
		$this->ccvCount = $this->analyzedModuleList->get_pagecount();
		$i = 0;
		while ($i < $this->ccvCount) {
			$this->analyzedModuleList->page($i)->url = urlencode($this->analyzedModuleList->page($i)->label . '.html');
			$i ++;
		}
	}
}